// const baseURL = 'https://gym.wxywxy.cn';  // 接口请求地址
const baseURL = 'http://10.130.15.112:8080';  // 接口请求地址

const whiteList = ["/login"];

module.exports = function (options: Options) {
  return new Promise(function (resolve, reject) {
    let header: { [key: string]: string } = {
      'content-type': 'application/json',
    };
    // 如果不在白名单中，添加 authorization 字段
    if (!whiteList.includes(options.url)) {
      const token = wx.getStorageSync('token');
      if (token) {
        header['authentication'] = token;
      }
    }
    wx.request({
      url: baseURL + options.url,
      method: options.method,
      data: options.method === "POST" ? JSON.stringify(options.data) : options.data,
      header: header,
      success({ data, statusCode }: { data: Response, statusCode: number }) {
        // 请求成功
        if (statusCode >= 200 && statusCode < 300) {
          // 判断状态码，根据后端定义来判断
          if (data.code == 0) {
            resolve(data);
          } else {
            // 其他异常
            reject(data);
            wx.showToast({
              title: data.msg || "业务处理失败",
              icon: 'error'
            })
          }
        }else if(statusCode >= 400 && statusCode < 500) {
          if(statusCode == 401) {
            wx.showToast({
              title:"token已过期",
              icon:"error"
            })
            setTimeout(() => {
              wx.navigateTo({
                url:"/pages/login/login"
              })
            },1500)
          }else if(statusCode == 404) {
            
          }
          else {
            wx.showToast({
              title:"请检查输入",
              icon:"error"
            })
          }
        }else if(statusCode > 500) {
          wx.showToast({
            title:"服务器错误，请稍后重试",
            icon:"none"
          })
        }
        
      },
      fail: function (err: any) {
        // 请求失败
        reject(err)
        wx.showToast({
          title: '网络繁忙，请稍后重试~',
          icon: 'none'
        })
      },
      complete: function () {
      }
    })
  })
}
